/**
 *
 * Copyright (c) 2014, the Railo Company Ltd. All rights reserved.
 *
 * This library is free software; you can redistribute it and/or
 * modify it under the terms of the GNU Lesser General Public
 * License as published by the Free Software Foundation; either 
 * version 2.1 of the License, or (at your option) any later version.
 * 
 * This library is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
 * Lesser General Public License for more details.
 * 
 * You should have received a copy of the GNU Lesser General Public 
 * License along with this library.  If not, see <http://www.gnu.org/licenses/>.
 * 
 **/
package lucee.commons.net.http.httpclient.entity;

import org.apache.http.Header;
import org.apache.http.entity.ByteArrayEntity;
import org.apache.http.entity.ContentType;

import lucee.commons.net.HTTPUtil;

public final class ByteArrayHttpEntity extends ByteArrayEntity implements Entity4 {

	private ContentType ct;
	private int contentLength;

	public ByteArrayHttpEntity(byte[] barr, ContentType contentType) {
		super(barr);
		contentLength = barr == null ? 0 : barr.length;

		if (ct == null) {
			Header h = getContentType();
			if (h != null) {
				lucee.commons.lang.mimetype.ContentType tmp = HTTPUtil.toContentType(h.getValue(), null);
				if (tmp != null) ct = ContentType.create(tmp.getMimeType(), tmp.getCharset());
			}
		}
		else this.ct = contentType;
	}

	@Override
	public long contentLength() {
		return contentLength;
	}

	@Override
	public String contentType() {
		return ct != null ? ct.toString() : null;
	}

}